Welcome to pandas!

4.9 Series字符长度、重复、修剪处理

1、字符长度

字符串长度计算在excel中用len()函数,在pandas中使用s.str.len()函数, 也可以用s.str.count()函数,因为s.str.count()函数支持正则表达式,所以更灵活,结构如下:

s.str.count(pat,flags=0)

pat :有效的正则表达式

flags :re模块中的标记


import pandas as pd

s=pd.Series([ "张三100","李四54","王麻子78杨钧94","李明83狗子140" ])

print (s.str.len())

print (s.str.count( "\d+" ))

print (s.str.count( "[89]\d|\d{3,}" ))

返回:

0 5
1 4
2 9
3 9

dtype: int64


0 1
1 1
2 2
3 2

dtype: int64


0 1
1 0
2 1
3 2

dtype: int64

2、字符重复

s.repeat()函数,可以重复Series数据中的元素,而s.str.repeat()函数可以重复Series数据中每个元素的内容, 这两个参数都只有1个参数。


import pandas as pd

s=pd.Series([ "过","份","了" ])

print (s.repeat( 3 ))

print (s.str.repeat( 3 ))

print (s.str.repeat([ 1,2,3 ])) #与元素对应

返回:

0
0
0
1
1
1
2
2
2

dtype: object


0 过过过
1 份份份
2 了了了

dtype: object


0
1 份份
2 了了了

dtype: object


3、Series元素的修剪

修剪空白字符,在Excel中使用Trim()函数,此函数是将两侧的空白值删除,如果字符中间有空白, 则只保留一个。而pandas中的修剪,是可以从字符串两侧,或者从左侧,或者从右侧删除指定的字符,有3个对应的函数。

Str.strip(to_strip=None) 表示从两侧修剪

Str.lstrip(to_strip=None) 表示从左侧修剪

Str.rstrip(to_strip=None) 表示从右侧修剪

To_strip 表示要删除的字符,如果不指定,则修剪空白字符。


import pandas as pd

s=pd.Series([ "and","123-789you456 "," 李四" ])

print (s.str.strip().str.len())

print (s.str.lstrip().str.len())

print (s.str.strip( "0123456789" )) #删除两侧的空白符,如果右侧有空白符,则无法删除

print (s.str.strip( "0123456789-" )) #数字中间有-线,则可以在表达式后面加-

返回:

0 3
1 13
2 4

dtype: int64


0 4
1 14
2 5

dtype: int64


0 and
1 -789you456
2 李四

dtype: object


0 and
1 you456
2 李四

dtype: object